package code12线程;

/**
 * @author 黄衡熙
 * @version 1.0
 */
public class Test01_线程的创建方式 {

    public static void main(String[] args) {
      /*  SomeThread t1 = new SomeThread("t1");
        SomeThread t2 = new SomeThread("t2");
        // 对于线程,不能通过调用run的方式运行
        // 这种方式只是方法调用,与线程无关
        // t1.run();
        // t2.run();
        // 线程的启动是通过start方法执行的
        t1.start();
        t2.start();*/
        System.out.println("*****************************");
        SomeRunnable sr = new SomeRunnable();
        // 创建一个Thread类的实例,将Runnable接口所对应的实现类交给Thread类
        // 表示分配一个Thread对象
        Thread t1 = new Thread(sr);
        Thread t2 = new Thread(sr);
        t1.start();
        t2.start();
    }

}

class SomeThread extends Thread {
    private String name;

    public SomeThread(String name) {
        this.name = name;
    }

    @Override
    public void run() {
        // 重写run方法,run方法中实现的代码就是线程做的事情
        for (int i = 0; i < 1000; i++) {
            System.out.println(name + "线程正在打印数字:" + i);
        }
    }
}

class SomeRunnable implements Runnable {

    @Override
    public void run() {
        // 重写run方法,run方法中实现的代码就是线程做的事情
        for (int i = 0; i < 1000; i++) {
            System.out.println(Thread.currentThread().getName() + "线程正在打印数字:" + i);//此处无继承不可直接用getName()方法
        }
    }
}
